SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TDCOMP_RETE_D01]  
/*-------------------------------------------------------*/  
/*---Empresa              : OFISIS S.A.                --*/  
/*---Cliente              : CASSINELLI                 --*/  
/*---Sistema              : Tesoreria                  --*/  
/*---M«dulo               : Empresa                    --*/  
/*---Programa             : Grabaci«n Detalle          --*/  
/*---                       Comp. Retenci½n            --*/  
/*---Script               : tdcaja_p.sql               --*/  
/*---Nombre SP            : SP_TDCOMP_RETE_D01         --*/  
/*---Desarrollado por     : Reynaldo Menacho L.           --*/  
/*---Fecha Creaci«n       : 29/01/2003                 --*/  
/*---Base Datos           : Microsoft Sql Server       --*/  
/*---Versi«n              : 7.0                        --*/  
/*---Invoca a SP          :                            --*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*---Modificado 1 por     : Maribel Julca Rodriguez      --*/  
/*---Fecha Modificaci©n   : 20/04/2005                   --*/   
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA Y CO_USUA_MODI                           --*/  
/*-------------------------------------------------------*/    
/*-------------------------------------------------------*/  
/*---Comentarios                                       --*/  
/*---                                                  --*/  
/*---                                                  --*/  
/*-------------------------------------------------------*/  
  
/*-------------------------------------------------------*/  
/*---Drop Proc SP_TDCOMP_RETE_D01                      --*/  
/*---Grant all on SP_TDCOMP_RETE_D01 to public         --*/   
/*---SP_TDCOMP_RETE_D01                                --*/  
/*-------------------------------------------------------*/  
 @ISCO_EMPR TD_VC_002,   
 @ISCO_USUA_MODI TD_VC_008_USUA,  
 @ISNU_COMP_RETE TD_VC_020,  
 @ISCO_PROV TD_VC_020,  
 @ISCO_BANC TD_VC_003,   
 @ISNU_CNTA_BANC TD_VC_020,  
 @ISCO_CAJA TD_VC_008,  
 @ISAA_BACA TD_VC_004,   
 @ISMM_BACA TD_VC_002,   
 @ISNU_COMP_BACA TD_VC_008,   
 @ISTI_DOCU TD_VC_003,  
 @ISNU_DOCU TD_VC_020,  
 @IDFE_EMIS TD_DT_001,  
 @INIM_TOTA_CONV TD_NU_016_004,  
 @INIM_PAGO_CONV TD_NU_016_004,  
 @INIM_RETE_CONV TD_NU_016_004,  
 @INFA_TIPO_CAMB NUMERIC(9,4),  
 @INIM_TOTA_RETE TD_NU_016_004
	As
Declare   
    @VNNU_SECU TD_IN_001,   
    @VSCO_MONE_PAGO TD_VC_003  
  
  
 Begin Tran SP_TDCOMP_RETE_D01  
  
  
     IF LEN(ISNULL(RTRIM(@ISNU_CNTA_BANC), '')) = 0  
 SELECT @VSCO_MONE_PAGO = CO_MONE  
        FROM TMCAJA  
        WHERE CO_EMPR = @ISCO_EMPR  
        AND CO_CAJA = @ISCO_CAJA  
     ELSE  
       SELECT @VSCO_MONE_PAGO = CO_MONE  
       FROM TMCNTA_BANC  
       WHERE CO_EMPR = @ISCO_EMPR  
       AND CO_BANC = @ISCO_BANC  
       AND NU_CNTA_BANC = @ISNU_CNTA_BANC  
         
           DELETE TDCOMP_RETE   
  WHERE CO_EMPR = @ISCO_EMPR  
  AND NU_COMP_RETE = @ISNU_COMP_RETE  
  AND TI_DOCU = @ISTI_DOCU  
  AND NU_DOCU = @ISNU_DOCU  
  
          If @@error <> 0  
                Begin  
                 Rollback tran  
           Return  
                End      
  
  
 Update TMDOCU_PROV  
        Set IM_TOTA = @INIM_TOTA_RETE,   
 IM_PAGA = @INIM_TOTA_RETE,  
        FE_USUA_MODI = Getdate(), CO_USUA_MODI = @ISCO_USUA_MODI  
        WHERE CO_EMPR = @ISCO_EMPR   
        And   CO_PROV = @ISCO_PROV  
        And   CO_TIPO_DOCU = 'CRE'  
        And   NU_DOCU_PROV = @ISNU_COMP_RETE  
  
      If @@error <> 0  
          Begin  
           Rollback tran  
      Return  
          End    
  
 IF LEN(ISNULL(RTRIM(@ISNU_CNTA_BANC), '')) = 0  
   BEGIN   
      UPDATE TDMOVI_CAJA  
  SET IM_DOCU = @INIM_TOTA_RETE,  
  IM_SALD_DOCU = @INIM_TOTA_RETE,  
  IM_CONV_DOCU = @INIM_TOTA_RETE,  
  FE_USUA_MODI = Getdate(), CO_USUA_MODI = @ISCO_USUA_MODI,  
  IM_SALD_CONV = CASE @VSCO_MONE_PAGO WHEN 'SOL' THEN @INIM_TOTA_RETE  
      ELSE @INIM_TOTA_RETE / @INFA_TIPO_CAMB END,  
  IM_DETA = CASE @VSCO_MONE_PAGO WHEN 'SOL' THEN @INIM_TOTA_RETE  
      ELSE @INIM_TOTA_RETE / @INFA_TIPO_CAMB END,  
  IM_DETA_NEGA = CASE @VSCO_MONE_PAGO WHEN 'SOL' THEN @INIM_TOTA_RETE * -1  
      ELSE (@INIM_TOTA_RETE / @INFA_TIPO_CAMB) * -1 END  
  WHERE CO_EMPR = @ISCO_EMPR  
       AND CO_CAJA = @ISCO_CAJA  
       AND AA_CAJA = @ISAA_BACA  
  AND MM_CAJA = @ISMM_BACA  
  AND TI_MOVI = 'E'  
  AND NU_COMP_CAJA = @ISNU_COMP_BACA  
  AND TI_DOCU_ENTI = 'CRE'  
  AND NU_DOCU_ENTI = @ISNU_COMP_RETE  
  
  
  If @@error <> 0  
           Begin  
            Rollback tran  
       Return  
           End    
    
   END  
 ELSE  
   BEGIN  
       UPDATE TDMOVI_BANC  
  SET IM_DOCU = @INIM_TOTA_RETE,  
  IM_SALD_DOCU = @INIM_TOTA_RETE,  
  IM_CONV_DOCU = @INIM_TOTA_RETE,  
  FE_USUA_MODI = Getdate(), CO_USUA_MODI = @ISCO_USUA_MODI,  
  IM_SALD_CONV = CASE @VSCO_MONE_PAGO WHEN 'SOL' THEN @INIM_TOTA_RETE  
      ELSE @INIM_TOTA_RETE / @INFA_TIPO_CAMB END,  
  IM_DETA = CASE @VSCO_MONE_PAGO WHEN 'SOL' THEN @INIM_TOTA_RETE  
      ELSE @INIM_TOTA_RETE / @INFA_TIPO_CAMB END,  
  IM_DETA_NEGA = CASE @VSCO_MONE_PAGO WHEN 'SOL' THEN @INIM_TOTA_RETE * -1  
      ELSE (@INIM_TOTA_RETE / @INFA_TIPO_CAMB) * -1 END  
  WHERE CO_EMPR = @ISCO_EMPR  
       AND CO_BANC = @ISCO_BANC  
       AND NU_CNTA_BANC = @ISNU_CNTA_BANC  
  AND AA_BNCO = @ISAA_BACA  
  AND MM_BNCO = @ISMM_BACA  
  AND TI_MOVI_BANC = 'E'  
  AND NU_COMP_BANC = @ISNU_COMP_BACA  
  AND TI_DOCU_ENTI = 'CRE'  
  AND NU_DOCU_ENTI = @ISNU_COMP_RETE  
       
  If @@error <> 0  
           Begin  
            Rollback tran  
       Return  
           End    
   END  
  
  
Commit Tran  
  
/*-------------------------- Fin ------------------------------*/


GO
